개념정리

✅ Chapter 10 – 가상화 개념 정리 (1부)

📌 1. 가상화(Virtualization)의 개요


📌 2. 가상화 상태의 수학적 표현


📌 3. 가상화 계층 종류

1) ABI 레벨 (프로세스 가상 머신)

2) ISA 레벨 (시스템 가상 머신)


📌 4. 프로세스 VM 유형

유형 설명 예시
Multiprogrammed System 단일 프로세스가 마치 전체 시스템(CPU, 메모리, 디스크 등)을 독점하는 것 같게함. 없음
Emulator 서로 다른 ISA 변환
User ISA만 에뮬레이션

인터프리터 방식
- 인스트럭션을 하나씩 해석하여 수행
- 스타트업 시간에 대한 오버헤드가 없으나 느림

바이너리 트랜슬레이터 방식
- 소스 인스트럭션을 블럭단위로 변환하여 수행
- 스타트업 오버헤드 존재하나 빠름
- Dynamic Binary Translator라고 부르기도 함.
QEMU
Same ISA Binary Optimizer 게스트와 호스트가 동일한 ISA를 가자는 경우 최적화하여 사용 Dynamo
High-Level Language VM 언어 독립 실행환경

3개의 다른 프로세스 가상머신과 유사

하드웨어와 운영체제의 의존 관계 최소화가 중점
JVM, CLR

프로세스 가상머신 그룹핑

동일한 ISA
다른 ISA

📌 5. 하이퍼바이저

하이퍼바이저 용어

하이퍼바이저(hypervisor)

호스트 머신(host machine)

게스트 머신(guest machine)

하이퍼바이저 타입


Type 1(=bare metal)(=native) 하이퍼바이저

Type 2(=hosted) 하이퍼바이저

KVM

Xen

하이퍼바이저의 라이프 사이클

VMX

인텔 VT-x 기준 VMM 라이프 사이클

VMCS(Virtual Machine Control Structure)

하이퍼바이저의 라이프 사이클

Pasted image 20250619235146.png

가상화

가상화 개념

클라우드 서비스에서의 가상화

장점

단점

논리적 시스템 생성 관점에서 가상화 타입 4가지

가상화 방식 특징 장점 단점
전가상화 (Full Virtualization) 게스트 OS 수정 없음

가상화 환경에서 동작하는 인지 못함

하드웨어 관련 명령어 직접 요청-> 하이퍼바이저가 가로채서 처리해야함 -> 오버헤드 발생

SW 기반 전가상화와 HW 지원 기반 전가상화로 구분
기존 OS 사용 가능 트랩 및 에뮬레이션에 따른 성능 저하
반가상화 (Paravirtualization) Guest OS가 Hypervisor와 직접 통신. 하이퍼콜 사용 성능 향상 OS 수정 필요
하이브리드 가상화 HW 지원 전가상화 + 반가상화 드라이버 성능과 호환성 절충 복잡한 구현
OS 레벨 가상화 (컨테이너) 단일 커널을 여러 컨테이너가 공유 경량, 빠름 OS 종속성 있음 (이기종 OS 불가)

가상화 타입 특징 요약

Pasted image 20250620000513.png

물리시스템에서 CPU가 동작하는 방식

Pasted image 20250620000751.png

전가상화

SW 기반 전가상화

기본개념
동작방식

Pasted image 20250620001306.png

특권 명령 실행을 위한 3가지 이벤트
트랩(trap)
인터럽트(interrupt)
익셉션(exception)
반가상화 등장 배경

하드웨어기반 전가상화

CPU에 가상화 기능 탑재
동작방식

Pasted image 20250620002648.png

반가상화

Paravirtualization

특징

전가상화 트랩 vs 반가상화 트랩

Pasted image 20250620003242.png

반가상화 장점

반가상화 단점

하이브리드 가상화

반가상화와 하드웨어 가상화의 조합 방식

결론

📌 10. OS 레벨 가상화의 특징

✅ Chapter 11 – CPU 가상화

📌 1. CPU 가상화 개념


📌 2. x86 특권 수준과 실행 모드

구분 설명
Ring 0 커널 모드 (특권 명령 실행 가능)
Ring 3 사용자 모드 (애플리케이션 실행)
Guest OS는 Ring 0에서 실행되기를 기대하지만, 실제로는 Ring 1 이하로 격하됨.

📌 3. 문제: 트랩이 발생하지 않는 명령어


📌 4. CPU 가상화 기법 요약

기법 특징 대표 기술
에뮬레이션 ISA 변환. 느림. QEMU
Binary Translation (BT) 트랩 안 걸리는 명령을 안전한 명령으로 변환 VMware
Hypercall (반가상화) OS가 하이퍼바이저에 직접 요청 Xen
HW 지원 가상화 VT-x(Intel), AMD-V를 활용하여 Root/Non-root 모드 분리 KVM 등

📌 5. Intel VT-x 구조

구성 영역 설명
Guest State Area VM Entry 시 게스트 상태
Host State Area VM Exit 시 호스트로 복귀할 상태
Control Fields 입출력 권한, 예외 발생 조건 등 제어
Exit Info Fields Exit 사유, 명령어 위치 등 기록

📌 6. 실행 흐름

text

복사편집

1. VMXON → VMM 활성화 2. VMLAUNCH or VMRESUME → 게스트 진입 3. VMEXIT → 하이퍼바이저로 제어 이동 4. VMXOFF → VMM 종료


📌 7. 라이프사이클 예시

단계 설명
VMXON 가상화 모드 진입
VM Entry 게스트 실행
VM Exit 호스트 복귀 (예외/인터럽트/IO 발생 시)
VMXOFF 종료 및 상태 복구

✅ Chapter 11 – 메모리 가상화

📌 1. 기본 개념


📌 2. 변환 계층

css

복사편집

Guest Virtual Address (GVA) → Guest Physical Address (GPA) → Host Physical Address (HPA)


📌 3. 구현 방식 비교

방식 설명 장점 단점
TLB 에뮬레이션 하이퍼바이저가 TLB를 직접 에뮬 간단 성능 저하 (TLB miss 등)
Shadow Page Table VMM이 게스트와 별도 page table 관리 호환성 ↑ 유지 비용 큼
Direct PT Access (반가상화) 게스트가 머신주소 사용 성능 ↑ OS 수정 필요
HW 지원 (Nested Page Table) EPT(Intel), NPT(AMD)로 2단계 주소 변환 고성능, OS 수정 불필요 메모리 접근이 최대 5번 필요할 수 있음

📌 4. Nested Page Table 단점과 보완

✅ Chapter 14 – 컨테이너 기본 개념

📌 1. 컨테이너란?


📌 2. 컨테이너의 장점

분류 장점
개발 및 배포 환경 통일성 확보, 빠른 배포 및 스케일링
운영 관리 리소스 경량화, 빠른 시작, 빠른 복구
보안 애플리케이션 수준 격리 (sandbox)
이식성 어느 플랫폼에서도 동일하게 실행 가능

📌 3. VM vs 컨테이너 비교

항목 VM 컨테이너
OS 실행 Guest OS 실행 호스트 OS 커널 공유
부팅 시간 수 분 이상 수 초 내외
리소스 무겁고 개별 할당 경량, 공유 자원
활용 예 다양한 OS 실행 마이크로서비스, DevOps, CI/CD 파이프라인

📌 4. 컨테이너 기술의 역사

연도 기술 설명
1979 chroot 파일 시스템 격리 시작
2000 FreeBSD Jail OS-level 가상화 구현
2006 Google cgroups 리소스 제어 기능
2008 LXC (Linux Container) 컨테이너 초기 형태
2013 Docker 컨테이너 표준화 및 대중화
2015 Kubernetes 오케스트레이션 프레임워크
2017 OCI, CRI-O 컨테이너 표준 런타임 API 정립

📌 5. 컨테이너 구성 기술 핵심

기술 설명
Namespace 프로세스, 네트워크, 사용자, 파일 시스템 등 격리
cgroup CPU, 메모리 등 리소스 사용량 제한
UnionFS 계층형 파일 시스템. 이미지 + 컨테이너 상태 분리

📌 6. 컨테이너가 적합한 경우